﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLGPS
{
    public class Testing
    {

        public static ColeccionTipoVehiculo  CrearTipos()
        {
            ColeccionTipoVehiculo choferes = new ColeccionTipoVehiculo();

            choferes.Add(new TipoVehiculo() { Id = 1, Descripcion  = "Camion"});
            choferes.Add(new TipoVehiculo() { Id = 2, Descripcion = "Camioneta"});
            return choferes;
        }

        public static ColeccionTipoDispositivo CrearTiposDispositivos()
        {
            ColeccionTipoDispositivo tiposDispositivos = new ColeccionTipoDispositivo();

            tiposDispositivos.Add(new TipoDispositivo() { Id = 1, Descripcion = "Ubicar", Parse = "A1" });
            tiposDispositivos.Add(new TipoDispositivo() { Id = 2, Descripcion = "Chino", Parse = "A2" });
            tiposDispositivos.Add(new TipoDispositivo() { Id = 3, Descripcion = "De USA", Parse = "A3" });
            return tiposDispositivos;
        }

        public static ColeccionChofer CrearChoferes()
        {
            ColeccionChofer choferes=new ColeccionChofer();

            choferes.Add(new Chofer() { Id = 1, Nombre = "Francisco Rodriguez", NroDocumento="11111222"});
            choferes.Add(new Chofer() { Id = 2, Nombre = "Alejandro Tejerina", NroDocumento = "11111222" });
            choferes.Add(new Chofer() { Id = 3, Nombre = "Mariano Torres", NroDocumento = "22333444" });
            choferes.Add(new Chofer() { Id = 4, Nombre = "Maximiliano Martinez", NroDocumento = "22333444" });

            return choferes; 
        }
        #region Singleton
        private static ColeccionFlota  s_Coleccion;

        public static ColeccionFlota  Flotas
        {
            get
            {
                if (s_Coleccion == null)
                {
                    s_Coleccion = CrearFlotas();
                }
                return s_Coleccion;
            }
        }
        #endregion
               
        public static ColeccionFlota CrearFlotas()
        {
            ColeccionFlota flotas = new ColeccionFlota();
            flotas.Add(new Flota() { Id = 1, Descripcion = "Corta Distancia", Activo = "S" });
            flotas.Add(new Flota() { Id = 2, Descripcion = "Larga Distancia", Activo = "S" });
            flotas.Add(new Flota() { Id = 3, Descripcion = "Importaciones", Activo = "S" });
            flotas.Add(new Flota() { Id = 4, Descripcion = "Interna", Activo = "N" });
            flotas.Add(new Flota() { Id = 5, Descripcion = "Flota 3", Activo = "N" });
            return flotas;
        }

        public static ColeccionDispositivo CrearDispositivos()
        {
            ColeccionDispositivo dispositivos = new ColeccionDispositivo();
            TipoDispositivo tipo = new TipoDispositivo();
            tipo.Id = 1;
            dispositivos.Add(new Dispositivo() { Id = 1, TipoDispositivo = tipo, Descripcion = "Dispositivo 1", Activo = "S", IMEI = "123456789012345", NroCelular = "145678909", NroSerie = "HGFS242", Vehiculo = new Vehiculo() { Activo = "s", Id = 2, Descripcion = "Camion 2", Patente = "AAA111", VelocidadMaxima = 70 } });
            dispositivos.Add(new Dispositivo() { Id = 2, TipoDispositivo = tipo, Descripcion = "Dispositivo 2", Activo = "S", IMEI = "123456789012345", NroCelular = "145678909", NroSerie = "HGFS242" });
            dispositivos.Add(new Dispositivo() { Id = 3, TipoDispositivo = tipo, Descripcion = "Dispositivo 3", Activo = "S", IMEI = "123456789012345", NroCelular = "145678909", NroSerie = "HGFS242" });
            dispositivos.Add(new Dispositivo() { Id = 4, TipoDispositivo = tipo, Descripcion = "Dispositivo 4", Activo = "S", IMEI = "123456789012345", NroCelular = "145678909", NroSerie = "HGFS242" });

            return dispositivos;
        }

        public static ColeccionEmpresa CrearEmpresas()
        {
            ColeccionEmpresa coleccion = new ColeccionEmpresa();
            coleccion.Add(new Empresa() {  CUIT="1111111",Id=1,RazonSocial ="Prueba 1" });
            coleccion.Add(new Empresa() { CUIT = "2222222", Id = 2, RazonSocial = "Prueba 2" });
            coleccion.Add(new Empresa() { CUIT = "3333333", Id = 3, RazonSocial = "Prueba 3" });
            coleccion.Add(new Empresa() { CUIT = "4444444", Id = 4, RazonSocial = "Prueba 4" });

            return coleccion; 
        }

        public static ColeccionVehiculo CrearCamiones()
        {
            ColeccionVehiculo coleccion = new ColeccionVehiculo();
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 1, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 2, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 3, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 4, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 5, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 6, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 7, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 8, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 9, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 10, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 11, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 12, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 13, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 14, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 15, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });

            coleccion.Add(new Vehiculo() { Activo = "s", Id = 16, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 17, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 18, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 19, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 20, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });



            coleccion.Add(new Vehiculo() { Activo = "s", Id = 21, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 22, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 23, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 24, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 25, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });

            coleccion.Add(new Vehiculo() { Activo = "s", Id = 26, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 27, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 28, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 29, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 30, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 31, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 32, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 33, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 34, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 35, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 }); 
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 36, Descripcion = "Camion 1", Patente = "AAA111", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 37, Descripcion = "Camion 2", Patente = "AAA222", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 38, Descripcion = "Camion 3", Patente = "AAA333", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 39, Descripcion = "Camion 4", Patente = "AAA444", VelocidadMaxima = 70 });
            coleccion.Add(new Vehiculo() { Activo = "s", Id = 40, Descripcion = "Camion 5", Patente = "AAA555", VelocidadMaxima = 70 });

            coleccion.ForEach(v => v.Chofer = new Chofer() {Id=1, Nombre="Maximiliano Rodriguez"});
            int i = 0;
             
            foreach (var item in coleccion)
            {
                item.Flota=Flotas[i];
                i++;
                if(i>2)i=0;
            }           
            coleccion.ForEach(v=>v.TipoVehiculo=ColeccionTipoVehiculo.Tipos[0] );
            return coleccion;
        }

        internal static ColeccionMovimiento CrearMovimientos()
        {
            ColeccionMovimiento movimientos = new ColeccionMovimiento();
            Movimiento mov = new Movimiento();
            mov.Latitud = -31.33F;
            mov.Longitud = -64.31F;
            movimientos.Add(mov);

            mov.Latitud = -31.36F ;
            mov.Longitud =-64.3F ;
            movimientos.Add(mov);

            mov.Latitud = -31.43F ;
            mov.Longitud = -64.27F ;
            movimientos.Add(mov);

            mov.Latitud =  -31.45F;
            mov.Longitud = -64.1F ;
            movimientos.Add(mov);

            
            return movimientos;                     
             
        }
    }
}
